11. crontab
簡介
執行定時任務
語法
crontab [ -u user ] file
#或者
crontab [ -u user ] { -l | -r | -e }
crontab [ -u user ] file
#或者
crontab [ -u user ] { -l | -r | -e }
參數
-e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
-r : 刪除目前的時程表
-l : 列出目前的時程表
時間格式:
(1) 其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程序。
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程序,其余類推
(2) 當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其余類推
(3) 當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其余類推
(4) 當 f1 為 a, b, c,… 時表示第 a, b, c,… 分鐘要執行,f2 為 a, b, c,… 時表示第 a, b, c…個小時要執行,其余類推
f1 ?f2 ? f3 ? f4 ? f5 ? program
* ? ?* ? ?* ? ?* ? ?*
- ? ?- ? ?- ? ?- ? ?-
| ? ?| ? ?| ? ?| ? ?|
| ? ?| ? ?| ? ?| ? ?+----- 星期中星期幾 (0 - 7) (星期天 為0)
| ? ?| ? ?| ? ?+---------- 月份 (1 - 12)?
| ? ?| ? ?+--------------- 一個月中的第幾天 (1 - 31)
| ? ?+-------------------- 小時 (0 - 23)
+------------------------- 分鐘 (0 - 59)
示例
每分鐘執行一次/bin/ls
* * * * * /bin/ls
在 12 月內, 每天的早上 6 點到 12 點,每隔 3 個小時 0 分鐘執行一次 /usr/bin/backup
0 6-12/3 * 12 * /usr/bin/backup
每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分…執行 echo “haha”
20 0-23/2 * * * echo"haha"
每天22:50關閉ssh服務
50 22 * * * /sbin/service sshd stop
每月1號和15號檢查/home 磁盤
0 0 1,15 * * fsck /home
0 0 1,15 * * fsck /home
12. lsof
簡介
列出當前系統打開文件的工具
語法
?lsof [options] filename
?
參數
默認 : 沒有選項,lsof列出活躍進程的所有打開文件
組合 : 可以將選項組合到一起,如-abc,但要當心哪些選項需要參數
-a 結果進行“與”運算(而不是“或”)
-c<進程名> 列出指定進程鎖打開的文件
-g 列出GID號進程詳情
+d<文件號> 列出占用該文件號的進程
+D<目錄> 遞歸列出目錄下被打開的文件
-n<目錄> 列出NFS的文件
-i<條件> 列出符合條件的進程
-p<進程號> 列出指定進程號打開的文件
-l 在輸出顯示用戶ID而不是用戶名
-h 獲得幫助
-t 僅獲取進程ID
-U 獲取UNIX套接口地址
-F 格式化輸出結果,用于其它命令??梢酝ㄟ^多種方式格式化,如-F pcfn(用于進程id、命令名、文件描述符、文件名,并以空終止)
示例
#列出所有打開的文件:
$ lsof
#備注: 如果不加任何參數,就會打開所有被打開的文件,建議加上一下參數來具體定位
#遞歸查看某個目錄的文件信息
$ lsof +D /filepath/filepath2/
#備注: 使用了+D,對應目錄下的所有子目錄和文件都會被列出
# 列出某個用戶打開的文件信息
lsof ?-u username
# 列出某個程序所打開的文件信息
lsof -c mysql
# 通過某個進程號顯示該進行打開的文件
lsof -p 1
# 列出所有tcp 網絡連接信息
lsof ?-i tcp
# 列出誰在使用某個端口
lsof -i :3306
# 列出所有網絡文件系統
lsof -N
# 根據文件描述列出對應的文件信息
lsof -d description(like 2)
13. netstat
簡介
獲取系統的網絡狀況
語法
netstat [-acCeFghilMnNoprstuvVwx][-A<網絡類型>][--ip]
參數
-a或–all 顯示所有連線中的Socket
-A<網絡類型>或–<網絡類型> 列出該網絡類型連線中的相關地址
-c或–continuous 持續列出網絡狀態
-C或–cache 顯示路由器配置的快取信息
-e或–extend 顯示網絡其他相關信息
-F或–fib 顯示FIB
-g或–groups 顯示多重廣播功能群組組員名單
-h或–help 在線幫助
-i或–interfaces 顯示網絡界面信息表單
-l或–listening 顯示監控中的服務器的Socket
-M或–masquerade 顯示偽裝的網絡連線
-n或–numeric 直接使用IP地址,而不通過域名服務器
-N或–netlink或–symbolic 顯示網絡硬件外圍設備的符號連接名稱
-o或–timers 顯示計時器
-p或–programs 顯示正在使用Socket的程序識別碼和程序名稱
-r或–route 顯示Routing Table
-s或–statistics 顯示網絡工作信息統計表
-t或–tcp 顯示TCP傳輸協議的連線狀況
-u或–udp 顯示UDP傳輸協議的連線狀況
-v或–verbose 顯示指令執行過程
-V或–version 顯示版本信息
-w或–raw 顯示RAW傳輸協議的連線狀況
-x或–unix 此參數的效果和指定"-A unix"參數相同
–ip或–inet 此參數的效果和指定"-A inet"參數相同
示例
顯示詳細的網絡狀況
$ netstat -a
顯示所有的監聽套接口
$ netstat -l
顯示所有tcp和udp連接
$ netstat -tuln
14. route
簡介
查看路由表
語法
route [-f] [-p] [Command] [Destination] [mask Netmask] [Gateway] [metric Metric] [if Interface]
參數
-c 顯示更多信息
-n 不解析名字
-v 顯示詳細的處理信息
-F 顯示發送信息
-C 顯示路由緩存
-f 清除所有網關入口的路由表
-p 與 add 命令一起使用時使路由具有永久性
add:添加一條新路由。
del:刪除一條路由。
-net:目標地址是一個網絡
-host:目標地址是一個主機
netmask:當添加一個網絡路由時,需要使用網絡掩碼
gw:路由數據包通過網關。注意,你指定的網關必須能夠達到
metric:設置路由跳數
示例
添加網關/設置網關
$ route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
屏蔽一條路由
$ route add -net 224.0.0.0 netmask 240.0.0.0 reject
刪除路由記錄
$ route del -net 224.0.0.0 netmask 240.0.0.0
$ route del -net 224.0.0.0 netmask 240.0.0.0 reject
刪除和添加設置默認網關
$ route del default gw 192.168.120.240
$ route add default gw 192.168.120.240
15. tcpdump
簡介
用于抓包分析數據包
語法
tcpdump [-adeflnNOpqStvx][-c<數據包數目>][-dd][-ddd][-F<表達文件>][-i<網絡界面>][-r<數據包文件>][-s<數據包大小>][-tt][-T<數據包類型>][-vv][-w<數據包文件>][輸出數據欄位]
參數
-a 嘗試將網絡和廣播地址轉換成名稱
-c<數據包數目> 收到指定的數據包數目后,就停止進行傾倒操作
-d 把編譯過的數據包編碼轉換成可閱讀的格式,并傾倒到標準輸出
-dd 把編譯過的數據包編碼轉換成C語言的格式,并傾倒到標準輸出
-ddd 把編譯過的數據包編碼轉換成十進制數字的格式,并傾倒到標準輸出
-e 在每列傾倒資料上顯示連接層級的文件頭
-f 用數字顯示網際網絡地址
-F<表達文件> 指定內含表達方式的文件
-i<網絡界面> 使用指定的網絡截面送出數據包
-l 使用標準輸出列的緩沖區
-n 不把主機的網絡地址轉換成名字
-N 不列出域名
-O 不將數據包編碼最佳化
-p 不讓網絡界面進入混雜模式
-q 快速輸出,僅列出少數的傳輸協議信息
-r <數據包文件> 從指定的文件讀取數據包數據
-s <數據包大小> 設置每個數據包的大小
-S 用絕對而非相對數值列出TCP關聯數
-t 在每列傾倒資料上不顯示時間戳記
-tt 在每列傾倒資料上顯示未經格式化的時間戳記
-T<數據包類型> 強制將表達方式所指定的數據包轉譯成設置的數據包類型
-v 詳細顯示指令執行過程
-vv 更詳細顯示指令執行過程
-x 用十六進制字碼列出數據包資料
-w<數據包文件> 把數據包數據寫入指定的文件
示例
顯示TCP包信息
$ tcpdump
顯示指定數量包
$ tcpdump -c 20
精簡顯示
$ tcpdump -c 10 -q //精簡模式顯示 10個包
16. tar
簡介
用于文件備份
語法
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <區塊數目>][-C <目的目錄>][-f <備份文件>][-F <Script文件>][-K <文件>][-L <媒體容量>][-N <日期時間>][-T <范本文件>][-V <卷冊名稱>][-X <范本文件>][-<設備編號><存儲密度>][--after-date=<日期時間>][--atime-preserve][--backuup=<備份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本樣式>][--force-local][--group=<群組名稱>][--help][--ignore-failed-read][--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用戶名稱>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<區塊數目>][--recursive-unlink][--remove-files][--rsh-command=<執行指令>][--same-owner][--suffix=<備份字尾字符串>][--totals][--use-compress-program=<執行指令>][--version][--volno-file=<編號文件>][文件或目錄...]
參數
-A或–catenate 新增文件到已存在的備份文件
-b<區塊數目>或–blocking-factor=<區塊數目> 設置每筆記錄的區塊數目,每個區塊大小為12Bytes
-B或–read-full-records 讀取數據時重設區塊大小
-c或–create 建立新的備份文件
-C<目的目錄>或–directory=<目的目錄> 切換到指定的目錄
-d或–diff或–compare 對比備份文件內和文件系統上的文件的差異
-f<備份文件>或–file=<備份文件> 指定備份文件
-F<Script文件>或–info-script=<Script文件> 每次更換磁帶時,就執行指定的Script文件
-g或–listed-incremental 處理GNU格式的大量備份
-G或–incremental 處理舊的GNU格式的大量備份
-h或–dereference 不建立符號連接,直接復制該連接所指向的原始文件
-i或–ignore-zeros 忽略備份文件中的0 Byte區塊,也就是EOF
-k或–keep-old-files 解開備份文件時,不覆蓋已有的文件
-K<文件>或–starting-file=<文件> 從指定的文件開始還原
-l或–one-file-system 復制的文件或目錄存放的文件系統,必須與tar指令執行時所處的文件系統相同,否則不予復制
-L<媒體容量>或-tape-length=<媒體容量> 設置存放每體的容量,單位以1024 Bytes計算
-m或–modification-time 還原文件時,不變更文件的更改時間
-M或–multi-volume 在建立,還原備份文件或列出其中的內容時,采用多卷冊模式
-N<日期格式>或–newer=<日期時間> 只將較指定日期更新的文件保存到備份文件里
-o或–old-archive或–portability 將資料寫入備份文件時使用V7格式
-O或–stdout 把從備份文件里還原的文件輸出到標準輸出設備
-p或–same-permissions 用原來的文件權限還原文件
-P或–absolute-names 文件名使用絕對名稱,不移除文件名稱前的"/“號
-r或–append 新增文件到已存在的備份文件的結尾部分
-R或–block-number 列出每個信息在備份文件中的區塊編號
-s或–same-order 還原文件的順序和備份文件內的存放順序相同
-S或–sparse 倘若一個文件內含大量的連續0字節,則將此文件存成稀疏文件。
-t或–list 列出備份文件的內容
-T<范本文件>或–files-from=<范本文件> 指定范本文件,其內含有一個或多個范本樣式,讓tar解開或建立符合設置條件的文件
-u或–update 僅置換較備份文件內的文件更新的文件
-U或–unlink-first 解開壓縮文件還原文件之前,先解除文件的連接
-v或–verbose 顯示指令執行過程
-V<卷冊名稱>或–label=<卷冊名稱> 建立使用指定的卷冊名稱的備份文件
-w或–interactive 遭遇問題時先詢問用戶
-W或–verify 寫入備份文件后,確認文件正確無誤
-x或–extract或–get 從備份文件中還原文件
-X<范本文件>或–exclude-from=<范本文件> 指定范本文件,其內含有一個或多個范本樣式,讓ar排除符合設置條件的文件
-z或–gzip或–ungzip 通過gzip指令處理備份文件
-Z或–compress或–uncompress 通過compress指令處理備份文件
-<設備編號><存儲密度> 設置備份用的外圍設備編號及存放數據的密度
–after-date=<日期時間> 此參數的效果和指定”-N"參數相同
–atime-preserve 不變更文件的存取時間
–backup=<備份方式>或–backup 移除文件前先進行備份
–checkpoint 讀取備份文件時列出目錄名稱
–concatenate 此參數的效果和指定"-A"參數相同
–confirmation 此參數的效果和指定"-w"參數相同
–delete 從備份文件中刪除指定的文件。
–exclude=<范本樣式> 排除符合范本樣式的文件
–group=<群組名稱> 把加入設備文件中的文件的所屬群組設成指定的群組
–help 在線幫助
–ignore-failed-read 忽略數據讀取錯誤,不中斷程序的執行
–new-volume-script=<Script文件> 此參數的效果和指定"-F"參數相同
–newer-mtime 只保存更改過的文件
–no-recursion 不做遞歸處理,也就是指定目錄下的所有文件及子目錄不予處理
–null 從null設備讀取文件名稱
–numeric-owner 以用戶識別碼及群組識別碼取代用戶名稱和群組名稱
–owner=<用戶名稱> 把加入備份文件中的文件的擁有者設成指定的用戶
–posix 將數據寫入備份文件時使用POSIX格式
–preserve 此參數的效果和指定"-ps"參數相同
–preserve-order 此參數的效果和指定"-A"參數相同
–preserve-permissions 此參數的效果和指定"-p"參數相同
–record-size=<區塊數目> 此參數的效果和指定"-b"參數相同
–recursive-unlink 解開壓縮文件還原目錄之前,先解除整個目錄下所有文件的連接
–remove-files 文件加入備份文件后,就將其刪除
–rsh-command=<執行指令> 設置要在遠端主機上執行的指令,以取代rsh指令
–same-owner 嘗試以相同的文件擁有者還原文件
–suffix=<備份字尾字符串> 移除文件前先行備份
–totals 備份文件建立后,列出文件大小
–use-compress-program=<執行指令> 通過指定的指令處理備份文件
–version 顯示版本信息
–volno-file=<編號文件> 使用指定文件內的編號取代預設的卷冊編號
示例
壓縮當前目錄下所有的文件,非打包
$ tar -czvf test.tar.gz *
列出壓縮文件內容
$ tar -tzvf test.tar.gz?
解壓文件
$ tar -zxvf test.tar.gz